## Descripción

Este repositorio contiene el blog Freak Spot, ubicado en
<https://freakspot.net/> y <https://lt3c6ipdt6mm2ytv.onion/>.

## Generar el blog

Tenemos un [vídeo mostrando cómo se genera Freak
Spot](https://freakspot.net/como-generar-freakspot/). Sigue leyendo si
prefieres una explicación escrita.

### Instalación de dependencias

Puedes generar este blog en tu ordenador. Para ello necesitas tener
los siguientes programas instalados:
* [Pelican](https://blog.getpelican.com/). Es el generador de páginas
* [Python](http://python.org/). Es el lenguaje de programación en el que
  está escrito Pelican.
* [Markdown](https://pypi.python.org/pypi/Markdown/). Markdown
  es el lenguaje de marcado ligero en el que están escritos los
  artículos y páginas.
* [Babel](https://pypi.org/project/Babel/). Para la traducción del tema
  de la página.
* [BeautifulSoup4](https://pypi.python.org/pypi/beautifulsoup4/).
  Requerido por el complemento tipue-search.
* [uglifycss](https://github.com/fmarcia/UglifyCSS). Compresor de código
  <abbr title="Cascading Style Sheets">CSS</abbr>.
* [uglifyjs](http://lisperator.net/uglifyjs/). Compresor de código
  JavaScript.
* [nodejs](https://nodejs.org/). Node.js® es un entorno de ejecución
  para JavaScript construido con el motor de JavaScript V8 de Chrome. Se
  utiliza para ejecutar uglifycss y uglifyjs.
* [npm](https://www.npmjs.com/). Gestor de paquetes de nodejs. Utilizado
  para instalar uglifycss y uglifyjs.

GNU/Linux y Mac OS suelen traer Python instalado por defecto. Para
instalar los requisitos de Python en estos sistemas operativos basta con
ejecutar la siguiente instrucción: `pip install -U Babel beautifulsoup4
markdown pelican`.

Para instalar los compresores de CSS y JavaScript primero instala nodejs
y npm. Finalmente, ejecuta `npm install uglifycss uglify-js -g`.

No es realmente necesario, pero es muy recomendable instalar [GNU
Make](https://gnu.org/software/make). En la siguiente sección se asume
que tienes Make instalado. En sistemas operativos basados en Debian se
puede instalar con la instrucción `apt install make`.

### Generar el contenido

Tras instalar las dependencias, puedes generar el blog ejecutando las
siguientes órdenes:
1. `git clone https://notabug.org/Freak-Spot/Freak-Spot`
2. `cd Freak-Spot/freak-theme && make compile`
3. `cd .. && make html`

Tras completar estos pasos, el blog estará disponible en la carpeta
`output`. Abre el archivo `output/index.html` con tu navegador favorito
para ver el blog.

## Colaboración

### Escribir un artículo

Si quieres publicar un artículo en Freak Spot, puedes realizar un *pull
request* o [mandarme el artículo por correo
electrónico](mailto:jorgesumle@freakspot.net). Si el artículo es
interesante, puede que lo acepte.

Si no sabes cómo funciona Pelican, puedes mándame el artículo por correo
sin preocuparte por el formato. Si quieres hacer un *pull request*,
debes utilizar los metadatos de Pelican y escribir el artículo en
[Markdown](https://es.wikipedia.org/wiki/Markdown). A continuación
se muestra un ejemplo.

```
Author: Nombre de la autora
Category: Python
Date: 2017-12-03 10:20
Slug: titulo-del-artículo
Tags: pelican, publishing
Title: Título del artículo

Este es el contenido del artículo. Puedo usar la sintaxis de
[Markdown](https://es.wikipedia.org/wiki/Markdown)
```

El contenido de Freak Spot se encuentra bajo dominio público
([CC0 1.0 Universal](https://creativecommons.org/publicdomain/mark/1.0/)).
Si quieres publicar tu artículo usando otra licencia, indícalo.

Cuando escribas un artículo intenta utilizar
[etiquetas](https://freakspot.net/tags/) y
[categorías](https://freakspot.net/categories/) que ya existan, no
utilices el nombre de la categoría del artículo también como etiqueta.

Si necesitas alguna funcionalidad especial (como un vídeo, una imagen de
cabecera...) intenta utilizar complementos o funcionalidades que ya
estén presentes en el blog. Consulta ejemplos de artículos que hacen uso
de estos.

### Hacer una traducción

Copia el archivo que quieres traducir y añade el código del idioma (por
ejemplo `.de` para el alemán) antes de la extensión `.md`. Traduce el
contenido del artículo o la página. Cuando termines, cambia los
metadatos que hagan falta (título, autor, etc.) y añade el metadato
`Lang` con el valor del código del idioma de la traducción. A
continuación se muestra un ejemplo.

```
Author: jorgesumle
Date: 2017-02-28 01:11
Lang: de
Slug: reflexión-sobre-los-medios-de-comunicación
Tags: Bücher, Fernsehen, freie Software, Internet, Kommentar, Medien
Title: Kommentar zu der Medien

Heutzutage gibt es viele Medien, die vorher nicht existierten. Das [...]
```

### Mejora de la página

También puedes mejorar la apariencia y funcionalidad de la página.
Simplemente crea un *pull request*. Antes de hacerlo, te recomendamos
conocer [cómo se organiza la estructura de
directorios](https://freakspot.net/pages/estructura-de-directorios.html).
También es
recomendable comprobar si el código
<abbr title="HyperText Markup Language">HTML</abbr>
es válido ejecutando `make validate` en la carpeta del proyecto (debes
tener
<a href="https://www.gnu.org/software/make/"><abbr title="GNU's Not Unix">GNU</abbr> Make</a>
y [html5validator](https://pypi.python.org/pypi/html5validator)
instalados).

## Información de licencias

El contenido de este sitio web se encuentra bajo dominio público,
excepto donde se especifique lo contrario.

Todo el código es software libre; se encuentra bajo la licencia <a
href="https://www.gnu.org/licenses/agpl-3.0.html" rel="license"><abbr
title="Affero General Public License version 3">AGPLv3</abbr></a>, salvo
las siguientes excepciones:

- Licencias de JavaScript. La información sobre las licencias de
  JavaScript se encuentra en el archivo `content/pages/libreJS.md` en
  forma de [tabla preparada para ser leída por LibreJS](https://www.gnu.org/software/librejs/manual/librejs.html#JavaScript-Web-Labels).
- Todo lo que hay en el directorio `freak-theme` se encuentra bajo la licencia <a href="https://www.gnu.org/licenses/gpl-3.0.html" rel="license"><abbr title="General Public License version 3">GPLv3</abbr></a>.
- Los siguientes complementos para Pelican (se encuentran en el
  directorio `plugins`):

    - **another_read_more_link**. Bajo la licencia [Apache License, Version 2.0](https://notabug.org/Freak-Spot/Freak-Spot/raw/master/plugins/another_read_more_link/LICENSE).
    - **Neighbor Articles Plugin for Pelican**. Bajo la licencia <a href="https://www.gnu.org/licenses/gpl-3.0.html" rel="license"><abbr title="General Public License version 3">GPLv3</abbr></a>.
    - **pelican-css**. Bajo la licencia <a href="https://www.gnu.org/licenses/gpl-3.0.html" rel="license"><abbr title="General Public License version 3">GPLv3</abbr></a>.
    - **pelican-js**. Bajo la licencia <a href="https://www.gnu.org/licenses/gpl-3.0.html" rel="license"><abbr title="General Public License version 3">GPLv3</abbr></a>.

## Preguntas frecuentes

### ¿Dónde esta alojado el repositorio con el código fuente?

Está alojado en <https://notabug.org/Freak-Spot/Freak-Spot>, y hay
copias en otros lugares:
- http://www.lgekyjf5vosmbfvcxzg3g5mmcncmwy4d3nhjrdqqiqzl5nmhqlfemaid.onion/Freak-Spot/Freak-Spot
- https://gitlab.com/Freak-Spot/Freak-Spot

### ¿Y el sistema de comentarios?

Freak Spot utiliza el sistema de comentarios
[Hashover](https://github.com/jacobwb/hashover-next), el cual es
software libre:
- [Código fuente del lado del servidor](https://freakspot.net/hashover-next/backend/source-viewer.php)
- [Código JavaScript](https://freakspot.net/hashover-next/comments.php)
- [Diseño](https://notabug.org/Freak-Spot/estoso-de-hashover)

### ¿Y los vídeos?

Los vídeos que contiene Freak Spot no se encuentran en este repositorio
por varias razones:

- No es nada útil añadir los vídeos al repositorio, pues Git no está
  hecho para controlar los cambios en los vídeos. Además, normalmente no
  se suelen modificar los vídeos ya creados.
- Solo harían que este repositorio fuera más pesado aún.
- Algunos vídeos no se encuentran alojados en el servidor de Freak Spot.

La siguiente tabla contiene todos los vídeos que se encuentran en Freak
Spot:

<table>
    <tr>
        <th>Título</th>
        <th>Fuente</th>
    </tr>
    <tr>
        <td>¿Cómo generar Freak Spot?</td>
        <td><a href="https://archive.org/download/libreweb/freakspot.webm">https://archive.org/download/libreweb/freakspot.webm</a></td>
    </tr>
    <tr>
        <td>My Moon (Blender short film)</td>
        <td><a href="https://freakspot.net/temporal/My_Moon_(Blender_short_film).mp4">https://freakspot.net/temporal/My_Moon_(Blender_short_film).mp4</a></td>
    </tr>
    <tr>
        <td>Divide la página del navegador con Tile Tabs</td>
        <td>
            Vídeo disponible en diferentes resoluciones:

            <ul>
                <li><strong>1080p</strong>. <a href="https://freakspot.net/temporal/Tile_Tabs.webm">https://freakspot.net/temporal/Tile_Tabs.webm</a></li>
                <li><strong>720p</strong>. <a href="https://freakspot.net/temporal/Tile_Tabs1280x720.webm">https://freakspot.net/temporal/Tile_Tabs1280x720.webm</a></li>
                <li><strong>480p</strong>. <a href="https://freakspot.net/temporal/Tile_Tabs854x480.webm">https://freakspot.net/temporal/Tile_Tabs854x480.webm</a></li>
                <li><strong>360p</strong>. <a href="https://freakspot.net/temporal/Tile_Tabs640x360.webm">https://freakspot.net/temporal/Tile_Tabs640x360.webm</a></li>
            </ul>
        </td>
    </tr>
    <tr>
        <td>Locutus de GNU</td>
        <td><a href="https://b2aeaa58a57a200320db-8b65b95250e902c437b256b5abf3eac7.ssl.cf5.rackcdn.com/media_entries/12965/A0001-4030.medium.webm">https://b2aeaa58a57a200320db-8b65b95250e902c437b256b5abf3eac7.ssl.cf5.rackcdn.com/media_entries/12965/A0001-4030.medium.webm</a></td>
    </tr>
    <tr>
        <td>LibreVideoJS para WordPress</td>
        <td><a href="http://roaming-initiative.com/mediagoblin/mgoblin_media/media_entries/1756/librevideojs.medium.webm">http://roaming-initiative.com/mediagoblin/mgoblin_media/media_entries/1756/librevideojs.medium.webm</a></td>
    </tr>
    <tr>
        <td>Instalación y configuración de TOR en Trisquel GNU/Linux</td>
        <td><a href="https://b2aeaa58a57a200320db-8b65b95250e902c437b256b5abf3eac7.ssl.cf5.rackcdn.com/media_entries/12271/tor-trisquel.medium.webm">https://b2aeaa58a57a200320db-8b65b95250e902c437b256b5abf3eac7.ssl.cf5.rackcdn.com/media_entries/12271/tor-trisquel.medium.webm</a></td>
    </tr>
    <tr>
        <td>¿Cómo poner una imagen sobre un fondo con GIMP?</td>
        <td><a href="https://b2aeaa58a57a200320db-8b65b95250e902c437b256b5abf3eac7.ssl.cf5.rackcdn.com/media_entries/10318/Como20poner20una20imagen20sobre20un20fondo20con20GIMP3F.mp4">https://b2aeaa58a57a200320db-8b65b95250e902c437b256b5abf3eac7.ssl.cf5.rackcdn.com/media_entries/10318/Como20poner20una20imagen20sobre20un20fondo20con20GIMP3F.mp4</a></td>
    </tr>
    <tr>
        <td>Caracoles</td>
        <td><a href="https://freakspot.net/temporal/caracoles.mp4">https://freakspot.net/temporal/caracoles.mp4</a></td>
    </tr>
    <tr>
        <td>Sin parar</td>
        <td><a href="https://freakspot.net/temporal/Sin_parar.webm">https://freakspot.net/temporal/Sin_parar.webm</a></td>
    </tr>
    <tr>
        <td>Escribir en griego antiguo en GNU/Linux</td>
        <td><a href="https://freakspot.net/video/escribiendo-en-griego-antiguo-con-onboard.webm">https://freakspot.net/video/escribiendo-en-griego-antiguo-con-onboard.webm</a></td>
    </tr>
</table>
